package Jogo;

import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ImageIcon;


public class Nave {
    
    private int x, y;
    private int nave_altura, nave_largura;
    private Image imagem_nave;
    private boolean Visivel;
    private boolean esq_press;
    private boolean dir_press;
    private boolean tiro_press;
    private List<Tiro> tiros;
    public static final int SPEED = 5;    

    public Nave(){
        
        ImageIcon nave_ref = new ImageIcon("resource\\nave.png");
        imagem_nave = nave_ref.getImage();
        this.x = 400;
        this.y = 500;
        this.nave_altura = imagem_nave.getHeight(null);
        this.nave_largura = imagem_nave.getWidth(null);
        
        tiros = new ArrayList<Tiro>();
    }
    
    public void move_nave(){
	if (esq_press && this.x >= 1) {
            x -= SPEED;
	}
	if (dir_press && this.x <= 735) {
            x += SPEED;
	}
    }
    
    public void atirar(){
        this.tiros.add(new Tiro( (x - 5) + nave_largura / 2, y - nave_altura / 3));
    }
    
    public List<Tiro> getTiros() {
        return tiros;
    }
    
    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public Image getImagem_nave() {
        return imagem_nave;
    }

    public void setVisivel(boolean Visivel) {
        this.Visivel = Visivel;
    }

    public int getNave_altura() {
        return nave_altura;
    }

    public int getNave_largura() {
        return nave_largura;
    }
    
    
    public void keyPressed(KeyEvent key){ // tecla pressionada
        int codigo = key.getKeyCode();
        
	if (codigo == KeyEvent.VK_LEFT) {
            esq_press = true;
        }
	if (codigo == KeyEvent.VK_RIGHT) { 
            dir_press = true;
	}
	if (codigo == KeyEvent.VK_SPACE) {
            tiro_press = true;
            atirar();
	}
        if (codigo == KeyEvent.VK_ESCAPE) {
            System.exit(0);
	}
        if (codigo == KeyEvent.VK_ENTER){
            new Janela();
        }
        
    }
    
    
    public void keyReleased(KeyEvent tecla) {  // tecla solta
        int codigo = tecla.getKeyCode();
	
        if (codigo == KeyEvent.VK_SPACE) {
            tiro_press = false;
	}
	if (codigo == KeyEvent.VK_LEFT) { 
            esq_press = false;
	}
	if (codigo == KeyEvent.VK_RIGHT) { 
            dir_press = false;
	}
        
    }
    public Rectangle getBounds(){
        return new Rectangle(x, y, nave_largura, nave_altura);    
    }
}
